<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>商品详情</title>
    <!-- jquery -->
    <script type="text/javascript" src="/js/jquery.min.js"></script>
    <!-- bootstrap -->
    <link rel="stylesheet" type="text/css" href="/bootstrap/css/bootstrap.min.css"/>
    <script type="text/javascript" src="/bootstrap/js/bootstrap.min.js"></script>
    <!-- layer -->
    <script type="text/javascript" src="/layer/layer.js"></script>
    <!-- common.js -->
    <script type="text/javascript" src="/js/common.js"></script>
</head>
<body>
<div class="panel panel-default">
    <div class="panel-heading">秒杀商品详情</div>
    <div class="panel-body">
        <span id="userTip"> 您还没有登录，请登陆后再操作<br/></span>
        <span>没有收货地址的提示。。。</span>
    </div>
    <table class="table" id="goods">
        <tr>
            <td>商品名称</td>
            <td colspan="3" id="goodsName"></td>
        </tr>
        <tr>
            <td>商品图片</td>
            <td colspan="3"><img id="goodsImage" width="200" height="200" alt="" src=""/></td>
        </tr>
        <tr>
            <td>秒杀开始时间</td>
            <td id="startTime"></td>
            <td>
                <input type="hidden" id="remainingSeconds">
                <!--<span th:if="${seckillStatus eq 0}">秒杀倒计时：<span id="countdown"
                                                                     th:text="${remainingSeconds}"></span>秒</span>
                <span th:if="${seckillStatus eq 1}">秒杀进行中</span>
                <span th:if="${seckillStatus eq 2}">秒杀已结束</span>-->
                <span id="seckillTip"></span>
            </td>
            <td>
                <!--                <form id="seckillForm" method="post" action="/seckill/doSeckill">
                                    <input type="hidden" name="goodsId" id="goodsId">
                                    <button class="btn btn-primary btn-block" type="submit" id="seckillButton">立即秒杀</button>
                                </form>-->
                <!--                <button class="btn btn-primary btn-block" type="button" id="seckillButton" onclick="doSeckill()">-->
                <div class="row">
                    <div class="form-inline">
                        <img id="captchaImage"
                             width="130"
                             height="32"
                             onclick="refreshCaptcha()"
                             style="display: none"/>
                        <input id="captchaText"
                               class="form-control"
                               style="display: none">
                        <button class="btn btn-primary"
                                type="button"
                                id="seckillButton"
                                onclick="getSeckillPath()">
                            立即秒杀
                            <input type="hidden" name="goodsId" id="goodsId">
                        </button>
                    </div>
                </div>
            </td>
        </tr>
        <tr>
            <td>商品原价</td>
            <td colspan="3" id="goodsPrice"></td>
        </tr>
        <tr>
            <td>秒杀价</td>
            <td colspan="3" id="seckillPrice"></td>
        </tr>
        <tr>
            <td>库存数量</td>
            <td colspan="3" id="seckillStock"></td>
        </tr>
    </table>
</div>
</body>
<script>
    $(function () {
        // countdown();
        getDetail();
    });

    function refreshCaptcha() {
        $("#captchaImage").attr("src", "/seckill/captcha?goodsId=" + $("#goodsId").val() + "&time=" + new Date()); // 打上时间戳以防缓存导致拿到旧的验证码，双重保险
    }

    function getSeckillPath() {
        const goodsId = $("#goodsId").val();
        const captcha = $("#captchaText").val();
        g_showLoading();
        $.ajax({
            url: "/seckill/path",
            type: "GET",
            data: {
                goodsId: goodsId,
                captcha: captcha
            },
            success: function (data) {
                if (data.code == 200) {
                    const fragment = data.object;
                    doSeckill(fragment);
                } else {
                    layer.msg(data.message);
                }
            },
            error: function () {
                layer.msg("客户端请求错误");
            }
        })
    }

    function doSeckill(fragment) {
        $.ajax({
            url: '/seckill/' + fragment + '/doSeckill',
            type: 'POST',
            data: {
                goodsId: $("#goodsId").val()
            },
            success: function (data) {
                if (data.code == 200) {
                    // window.location.href = "/orderDetail.htm?orderId=" + data.object.id;
                    getResult($("#goodsId").val());
                } else {
                    layer.msg(data.message);
                }
            },
            error: function () {
                layer.msg("客户端请求错误");
            }
        })
    }

    function getResult(goodsId) {
        g_showLoading(); // 加载条（动画）
        $.ajax({
            url: "/seckill/result",
            type: "GET",
            data: {
                goodsId: goodsId
            },
            success: function (data) {
                if (data.code == 200) {
                    const result = data.object;
                    if (result < 0) {
                        layer.msg("对不起，秒杀失败！");
                    } else if (result == 0) {
                        setTimeout(function () {
                            getResult(goodsId);
                        }, 50)
                    } else {
                        layer.confirm(
                            "恭喜你，秒杀成功！要查看订单吗？",
                            {btn: ["确定", "取消"]},
                            function () {
                                window.location.href = "/orderDetail.htm?orderId=" + result;
                            },
                            function () {
                                layer.close();
                            })
                    }
                }
            },
            error: function () {
                layer.msg("客户端请求错误");
            }
        })

    }

    function getDetail() {
        const goodsId = g_getQueryString("goodsId");
        $.ajax({
            url: '/goods/detail/' + goodsId,
            type: 'GET',
            success: function (data) {
                if (data.code == 200) {
                    render(data.object)
                } else {
                    layer.msg("客户端请求出错，返回值不是 200")
                }
            },
            error: function () {
                layer.msg("客户端请求出错")
            }
        });
    }

    function render(detail) {
        // console.log(detail)
        const user = detail["user"];
        const goods = detail["goods"];
        const remainingSeconds = detail["remainingSeconds"];
        if (user) {
            $("#userTip").hide()
        }
        $("#goodsName").text(goods["goodsName"]);
        $("#goodsImage").attr("src", goods["goodsImage"]);
        $("#startTime").text(new Date(goods["startTime"]).format("yyyy-MM-dd HH:mm:ss"))
        $("#remainingSeconds").val(remainingSeconds);
        $("#goodsId").val(goods["id"]);
        $("#goodsPrice").text(goods["goodsPrice"]);
        $("#seckillPrice").text(goods["seckillPrice"]);
        $("#seckillStock").text(goods["seckillStock"]);
        countdown();
    }

    function countdown() {
        let remainingSeconds = $("#remainingSeconds").val();
        // console.log(remainingSeconds);
        if (remainingSeconds > 0) {
            $("#seckillButton").attr("disabled", true);
            let timeout = setInterval(function () {
                if (remainingSeconds > 0) {
                    // $("#countdown").text(--remainingSeconds);
                    $("#seckillTip").html("秒杀倒计时：" + remainingSeconds + "秒");
                    --remainingSeconds;
                } else {
                    clearInterval(timeout); // 当倒计时结束时，清除定时器
                    // 这里可以添加倒计时结束后的逻辑，比如弹出一个提示或者执行其他操作
                    $("#seckillTip").html("秒杀进行中")
                    $("#seckillButton").attr("disabled", false);
                    refreshCaptcha();
                    $("#captchaImage").show();
                    $("#captchaText").show();
                }
            }, 1000); // 每秒执行一次这个函数
        } else if (remainingSeconds == 0) { // 秒杀进行中
            $("#seckillButton").attr("disabled", false);
            $("#seckillTip").html("秒杀进行中")
            refreshCaptcha();
            $("#captchaImage").show();
            $("#captchaText").show();
        } else { // 秒杀已经结束
            $("#seckillButton").attr("disabled", true);
            $("#seckillTip").html("秒杀已经结束");
            $("#captchaImage").hide ();
            $("#captchaText").hide();
        }
    }
</script>
</html>
